Micron Document
🎖️GitЯра🎖️


Displaying Raw • Download

.specify/extensions/git/scripts/powershell/initialize-repo.ps1 renovate/actions-checkout-7.x (2a019bd0) Text, 2.20 KB

T8b949e#!/usr/bin/env pwsh
T8b949e# Git extension: initialize-repo.ps1
T8b949e# Initialize a Git repository with an initial commit.
T8b949e# Customizable — replace this script to add .gitignore templates,
T8b949e# default branch config, git-flow, LFS, signing, etc.
Te6edf3$ErrorActionPreference Tb4b4b4= Ta5d6ff'Stop'

T8b949e# Find project root
Tff7b72function Tffa657Find-ProjectRoot Tb4b4b4{
Tff7b72paramTb4b4b4(Tff7b72[string]Te6edf3$StartDirTb4b4b4)
Te6edf3$current Tb4b4b4= Tffa657Resolve-Path Te6edf3$StartDir
Tff7b72while Tb4b4b4(Te6edf3$trueTb4b4b4) Tb4b4b4{
Tff7b72foreach Tb4b4b4(Te6edf3$marker Tff7b72in Tb4b4b4@Tb4b4b4(Ta5d6ff'.specify'Tb4b4b4, Ta5d6ff'.git'Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657Test-Path Tb4b4b4(Tffa657Join-Path Te6edf3$current Te6edf3$markerTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3$current
Tb4b4b4}
Tb4b4b4}
Te6edf3$parent Tb4b4b4= Tffa657Split-Path Te6edf3$current Te6edf3-Parent
Tff7b72if Tb4b4b4(Te6edf3$parent Tff7b72-eq Te6edf3$currentTb4b4b4) Tb4b4b4{ Tff7b72return Te6edf3$null Tb4b4b4}
Te6edf3$current Tb4b4b4= Te6edf3$parent
Tb4b4b4}
Tb4b4b4}

Te6edf3$repoRoot Tb4b4b4= Tffa657Find-ProjectRoot Te6edf3-StartDir Te6edf3$PSScriptRoot
Tff7b72if Tb4b4b4(Tff7b72-not Te6edf3$repoRootTb4b4b4) Tb4b4b4{ Te6edf3$repoRoot Tb4b4b4= Tffa657Get-Location Tb4b4b4}
Tffa657Set-Location Te6edf3$repoRoot

T8b949e# Read commit message from extension config, fall back to default
Te6edf3$commitMsg Tb4b4b4= Ta5d6ff"Ta5d6ff[Spec Kit] Initial commitTa5d6ff"
Te6edf3$configFile Tb4b4b4= Tffa657Join-Path Te6edf3$repoRoot Ta5d6ff"Ta5d6ff.specify/extensions/git/git-config.ymlTa5d6ff"
Tff7b72if Tb4b4b4(Tffa657Test-Path Te6edf3$configFileTb4b4b4) Tb4b4b4{
Tff7b72foreach Tb4b4b4(Te6edf3$line Tff7b72in Tffa657Get-Content Te6edf3$configFileTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3$line Tff7b72-match Ta5d6ff'^init_commit_message:\s*(.+)$'Tb4b4b4) Tb4b4b4{
Te6edf3$val Tb4b4b4= Te6edf3$matchesTb4b4b4[Te6edf31Tb4b4b4]Tb4b4b4.Te6edf3TrimTb4b4b4(Tb4b4b4) Tff7b72-replace Ta5d6ff'^["'']' Tff7b72-replace Ta5d6ff'["'']$'
Tff7b72if Tb4b4b4(Te6edf3$valTb4b4b4) Tb4b4b4{ Te6edf3$commitMsg Tb4b4b4= Te6edf3$val Tb4b4b4}
Tff7b72break
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

T8b949e# Check if git is available
Tff7b72if Tb4b4b4(Tff7b72-not Tb4b4b4(Tffa657Get-Command Te6edf3git Te6edf3-ErrorAction Te6edf3SilentlyContinueTb4b4b4)Tb4b4b4) Tb4b4b4{
Tffa657Write-Warning Ta5d6ff"Ta5d6ff[specify] Warning: Git not found; skipped repository initializationTa5d6ff"
Te6edf3exit Te6edf30
Tb4b4b4}

T8b949e# Check if already a git repo
Tff7b72try Tb4b4b4{
Te6edf3git Te6edf3revTe6edf3-parse Tb4b4b4-Tff7b72-isTe6edf3-insideTe6edf3-workTe6edf3-tree Te6edf32Tb4b4b4>Te6edf3$null Tb4b4b4| Tffa657Out-Null
Tff7b72if Tb4b4b4(Te6edf3$LASTEXITCODE Tff7b72-eq Te6edf30Tb4b4b4) Tb4b4b4{
Tffa657Write-Warning Ta5d6ff"Ta5d6ff[specify] Git repository already initialized; skippingTa5d6ff"
Te6edf3exit Te6edf30
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4{ Tb4b4b4}

T8b949e# Initialize
Tff7b72try Tb4b4b4{
Te6edf3$out Tb4b4b4= Te6edf3git Te6edf3init Te6edf3-q Te6edf32Tb4b4b4>Tb4b4b4&Te6edf31 Tb4b4b4| Tffa657Out-String
Tff7b72if Tb4b4b4(Te6edf3$LASTEXITCODE Tff7b72-ne Te6edf30Tb4b4b4) Tb4b4b4{ Tff7b72throw Ta5d6ff"Ta5d6ffgit init failed: Ta5d6ff$Ta5d6ffoutTa5d6ff" Tb4b4b4}
Te6edf3$out Tb4b4b4= Te6edf3git Te6edf3add Tb4b4b4. Te6edf32Tb4b4b4>Tb4b4b4&Te6edf31 Tb4b4b4| Tffa657Out-String
Tff7b72if Tb4b4b4(Te6edf3$LASTEXITCODE Tff7b72-ne Te6edf30Tb4b4b4) Tb4b4b4{ Tff7b72throw Ta5d6ff"Ta5d6ffgit add failed: Ta5d6ff$Ta5d6ffoutTa5d6ff" Tb4b4b4}
Te6edf3$out Tb4b4b4= Te6edf3git Te6edf3commit Tb4b4b4-Te6edf3-allowTe6edf3-empty Te6edf3-q Te6edf3-m Te6edf3$commitMsg Te6edf32Tb4b4b4>Tb4b4b4&Te6edf31 Tb4b4b4| Tffa657Out-String
Tff7b72if Tb4b4b4(Te6edf3$LASTEXITCODE Tff7b72-ne Te6edf30Tb4b4b4) Tb4b4b4{ Tff7b72throw Ta5d6ff"Ta5d6ffgit commit failed: Ta5d6ff$Ta5d6ffoutTa5d6ff" Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tffa657Write-Warning Ta5d6ff"Ta5d6ff[specify] Error: Ta5d6ff$Ta5d6ff_Ta5d6ff"
Te6edf3exit Te6edf31
Tb4b4b4}

Tffa657Write-Host Ta5d6ff"Ta5d6ff✓ Git repository initializedTa5d6ff"

Served by rngit 1.5.2 - Generated in 0.11s